package com.jims.master.modules.finance.entity;

import org.hibernate.validator.constraints.Length;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

import com.jims.master.common.persistence.DataEntity;

/**
 * Entity
 *
 * @author Future
 * @version 2017-07-19
 */
public class MedReceiptRecordMaster extends DataEntity<MedReceiptRecordMaster> {

    private static final long serialVersionUID = 1L;
    private String hospitalNumber;        // 医疗机构编号
    private String chargeNumber;        // 结算号
    private String unitNumber;        // 单位编号
    private String personalNumber;        // 个人编号
    private String name;        // 姓名
    private String sex;        // 性别
    private Date birthDate;        // 出生日期
    private String personalType;        // 人员类别
    private String sickType;        // 就诊类别
    private String chargeSource;        // 就诊方式
    private String hospitalGrade;        // 医院等级
    private String inCount;        // 本次住院次数
    private Date admissionDate;        // 入院日期
    private Date dischargeDate;        // 出院日期
    private String diagnosisName;        // 入院诊断疾病编码
    private String residenceNo;        // 本次住院号
    private String totalCost;        // 医疗费总额
    private String payWave;        // 本次起付线
    private String paySide1;        // 本次现金支付
    private String paySide2;        // 本次个人帐户应支付金额
    private String paySide3;        // 本次统筹应支付金额
    private String paySide4;        // 本次大病基金支付金额
    private String paySide5;        // 本次补充基金支付金额
    private String paySide6;        // 本次公务员津贴支付金额
    private String paySide7;        // 0
    private String paySide8;        // 0
    private String visitNumber;        // 门诊处方号
    private String takeFlag;        // take_flag
    private Date handleDate;        // 经办日期
    private String payType;        // 结算类型（1收费，2退费，3被退费）
    private String operator;        // 经办人
    private String ckb002;        // 救助新增支出
    private String ckb006;        // 贫困救助支出
    private String ckb012;        // 学生二次补偿

    public MedReceiptRecordMaster() {
        super();
    }

    public MedReceiptRecordMaster(String id) {
        super(id);
    }

    @Length(min = 0, max = 10, message = "医疗机构编号长度必须介于 0 和 10 之间")
    public String getHospitalNumber() {
        return hospitalNumber;
    }

    public void setHospitalNumber(String hospitalNumber) {
        this.hospitalNumber = hospitalNumber;
    }

    @Length(min = 0, max = 18, message = "结算号长度必须介于 0 和 18 之间")
    public String getChargeNumber() {
        return chargeNumber;
    }

    public void setChargeNumber(String chargeNumber) {
        this.chargeNumber = chargeNumber;
    }

    @Length(min = 0, max = 10, message = "单位编号长度必须介于 0 和 10 之间")
    public String getUnitNumber() {
        return unitNumber;
    }

    public void setUnitNumber(String unitNumber) {
        this.unitNumber = unitNumber;
    }

    @Length(min = 0, max = 18, message = "个人编号长度必须介于 0 和 18 之间")
    public String getPersonalNumber() {
        return personalNumber;
    }

    public void setPersonalNumber(String personalNumber) {
        this.personalNumber = personalNumber;
    }

    @Length(min = 0, max = 20, message = "姓名长度必须介于 0 和 20 之间")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Length(min = 0, max = 3, message = "性别长度必须介于 0 和 3 之间")
    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
    }

    @Length(min = 0, max = 3, message = "人员类别长度必须介于 0 和 3 之间")
    public String getPersonalType() {
        return personalType;
    }

    public void setPersonalType(String personalType) {
        this.personalType = personalType;
    }

    @Length(min = 0, max = 3, message = "就诊类别长度必须介于 0 和 3 之间")
    public String getSickType() {
        return sickType;
    }

    public void setSickType(String sickType) {
        this.sickType = sickType;
    }

    @Length(min = 0, max = 3, message = "就诊方式长度必须介于 0 和 3 之间")
    public String getChargeSource() {
        return chargeSource;
    }

    public void setChargeSource(String chargeSource) {
        this.chargeSource = chargeSource;
    }

    @Length(min = 0, max = 3, message = "医院等级长度必须介于 0 和 3 之间")
    public String getHospitalGrade() {
        return hospitalGrade;
    }

    public void setHospitalGrade(String hospitalGrade) {
        this.hospitalGrade = hospitalGrade;
    }

    @Length(min = 0, max = 3, message = "本次住院次数长度必须介于 0 和 3 之间")
    public String getInCount() {
        return inCount;
    }

    public void setInCount(String inCount) {
        this.inCount = inCount;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getAdmissionDate() {
        return admissionDate;
    }

    public void setAdmissionDate(Date admissionDate) {
        this.admissionDate = admissionDate;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getDischargeDate() {
        return dischargeDate;
    }

    public void setDischargeDate(Date dischargeDate) {
        this.dischargeDate = dischargeDate;
    }

    @Length(min = 0, max = 200, message = "入院诊断疾病编码长度必须介于 0 和 200 之间")
    public String getDiagnosisName() {
        return diagnosisName;
    }

    public void setDiagnosisName(String diagnosisName) {
        this.diagnosisName = diagnosisName;
    }

    @Length(min = 0, max = 18, message = "本次住院号长度必须介于 0 和 18 之间")
    public String getResidenceNo() {
        return residenceNo;
    }

    public void setResidenceNo(String residenceNo) {
        this.residenceNo = residenceNo;
    }

    public String getTotalCost() {
        return totalCost;
    }

    public void setTotalCost(String totalCost) {
        this.totalCost = totalCost;
    }

    public String getPayWave() {
        return payWave;
    }

    public void setPayWave(String payWave) {
        this.payWave = payWave;
    }

    public String getPaySide1() {
        return paySide1;
    }

    public void setPaySide1(String paySide1) {
        this.paySide1 = paySide1;
    }

    public String getPaySide2() {
        return paySide2;
    }

    public void setPaySide2(String paySide2) {
        this.paySide2 = paySide2;
    }

    public String getPaySide3() {
        return paySide3;
    }

    public void setPaySide3(String paySide3) {
        this.paySide3 = paySide3;
    }

    public String getPaySide4() {
        return paySide4;
    }

    public void setPaySide4(String paySide4) {
        this.paySide4 = paySide4;
    }

    public String getPaySide5() {
        return paySide5;
    }

    public void setPaySide5(String paySide5) {
        this.paySide5 = paySide5;
    }

    public String getPaySide6() {
        return paySide6;
    }

    public void setPaySide6(String paySide6) {
        this.paySide6 = paySide6;
    }

    public String getPaySide7() {
        return paySide7;
    }

    public void setPaySide7(String paySide7) {
        this.paySide7 = paySide7;
    }

    public String getPaySide8() {
        return paySide8;
    }

    public void setPaySide8(String paySide8) {
        this.paySide8 = paySide8;
    }

    @Length(min = 0, max = 18, message = "门诊处方号长度必须介于 0 和 18 之间")
    public String getVisitNumber() {
        return visitNumber;
    }

    public void setVisitNumber(String visitNumber) {
        this.visitNumber = visitNumber;
    }

    @Length(min = 0, max = 4, message = "take_flag长度必须介于 0 和 4 之间")
    public String getTakeFlag() {
        return takeFlag;
    }

    public void setTakeFlag(String takeFlag) {
        this.takeFlag = takeFlag;
    }

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date getHandleDate() {
        return handleDate;
    }

    public void setHandleDate(Date handleDate) {
        this.handleDate = handleDate;
    }

    @Length(min = 0, max = 11, message = "结算类型（1收费，2退费，3被退费）长度必须介于 0 和 11 之间")
    public String getPayType() {
        return payType;
    }

    public void setPayType(String payType) {
        this.payType = payType;
    }

    @Length(min = 0, max = 30, message = "经办人长度必须介于 0 和 30 之间")
    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    public String getCkb002() {
        return ckb002;
    }

    public void setCkb002(String ckb002) {
        this.ckb002 = ckb002;
    }

    public String getCkb006() {
        return ckb006;
    }

    public void setCkb006(String ckb006) {
        this.ckb006 = ckb006;
    }

    public String getCkb012() {
        return ckb012;
    }

    public void setCkb012(String ckb012) {
        this.ckb012 = ckb012;
    }

}
